测试改进
除了精简spring-test
模块中过时的代码外,Spring 4 还引入了几个用于单元测试和集成测试的新功能。
- 几乎
spring-test
模块中所有的注解(例如:@ContextConfiguration
、@WebAppConfiguration
、@ContextHierarchy
、@ActiveProfiles
等等)现在可以用作元注解来创建自定义的 composed annotations 并且可以减少测试套件的配置。 - 现在可以以编程方式解决Bean定义配置文件的激活。只需要实现一个自定义的ActiveProfilesResolver,并且通过@ActiveProfiles的resolver属性注册。
- 新的
SocketUtils
类被引入到了spring-core
模块。这个类可以使你能够扫描本地主机的空闲的 TCP 和 UDP 服务端口。这个功能不是专门用在测试的,但是可以证明在你使用 Socket 写集成测试的时候非常有用。例如测试内存中启动的SMTP服务器,FTP服务器,Servlet容器等。 - 从 Spring 4.0 开始,
org.springframework.mock.web
包中的一套mock是基于Servlet 3.0 API。此外,一些Servlet API mocks(例如:MockHttpServletRequest
、MockServletContext
等等)已经有一些小的改进更新,提高了可配置性。